1140C - Playlist - CodeForces Solution


brute force data structures sortings *1600

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ar array

void solve()
{
  ll n,k;
  cin>>n>>k;
  priority_queue<ll,vector<ll>,greater<ll>> pq;
  vector<pair<int,int>> arr;
  for(int i = 0;   i <  n; i++)
  {
   int a,b;
   cin>>a>>b;
   arr.push_back({b,a});
  }
  sort(arr.begin(),arr.end());
   reverse(arr.begin(), arr.end());
   ll ans = LLONG_MIN;
   ll s = 0;
   ll ma = 0;
   for(int i  = 0 ; i<k; i++)
   {
   pq.push(arr[i].second);
   s+=arr[i].second;
   ans = max(ans,s*arr[i].first);

    
   }
  
   
   for(int i =  k ; i < n; i++)
   {
      ans = max(ans , (s-pq.top()+arr[i].second)*arr[i].first);
      if(arr[i].second > pq.top())
      {
         s -= pq.top();
         s+=arr[i].second;
         pq.pop();
         pq.push(arr[i].second);

      }
      
   }
   cout<<ans<<"\n";


  

}

int main()
{
   ios_base::sync_with_stdio(0);
   cin.tie(NULL);
   ll tc;
   tc = 1;
   //cin >> tc;
   while (tc--)
      solve();
}


Comments

Submit
0 Comments
More Questions

41C - Email address
1373D - Maximum Sum on Even Positions
1574C - Slay the Dragon
621A - Wet Shark and Odd and Even
1395A - Boboniu Likes to Color Balls
1637C - Andrew and Stones
1334B - Middle Class
260C - Balls and Boxes
1554A - Cherry
11B - Jumping Jack
716A - Crazy Computer
644A - Parliament of Berland
1657C - Bracket Sequence Deletion
1657B - XY Sequence
1009A - Game Shopping
1657A - Integer Moves
230B - T-primes
630A - Again Twenty Five
1234D - Distinct Characters Queries
1183A - Nearest Interesting Number
1009E - Intercity Travelling
1637B - MEX and Array
224A - Parallelepiped
964A - Splits
1615A - Closing The Gap
4C - Registration System
1321A - Contest for Robots
1451A - Subtract or Divide
1B - Spreadsheet
1177A - Digits Sequence (Easy Edition)